Routing হল ASP.Net অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা URL এবং অ্যাপ্লিকেশনের কোডের মধ্যে যোগাযোগ স্থাপন করে। এটি HTTP অনুরোধের URL কে সংশ্লিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে মানানসই করে। Routing ব্যবহার করে, আপনি URL গুলি কনফিগার করতে পারেন যাতে তারা কোডের নির্দিষ্ট অংশের সাথে মেলানো যায়, যেমন মডেল, কন্ট্রোলার এবং ভিউ।
Routing হলো URL এর সাথে নির্দিষ্ট কন্ট্রোলার অ্যাকশন যুক্ত করার একটি প্রক্রিয়া। এটি অ্যাপ্লিকেশন চলাকালীন HTTP অনুরোধের ভিত্তিতে একটি নির্দিষ্ট URL-এ পৌঁছানোর পথ নির্ধারণ করে। ASP.Net এ Routing এর সাহায্যে আপনি আরও মানবিক এবং SEO-বান্ধব URL গঠন করতে পারেন।
ASP.Net এ Routing কনফিগারেশন সাধারণত Startup.cs (ASP.Net Core) বা Global.asax (ASP.Net Framework) ফাইলে করা হয়।
ASP.Net Core এ Routing কনফিগারেশন Startup.cs ফাইলে করা হয়, যা অ্যাপ্লিকেশন শুরু হওয়ার সময় কনফিগারেশন এবং মিডলওয়্যার সেটআপ পরিচালনা করে।
ASP.Net Core এ Routing ব্যবহারের জন্য আপনাকে ConfigureServices মেথডে AddRouting()
কল করতে হবে। তবে সাধারণত এটি ডিফল্টভাবে অন্তর্ভুক্ত থাকে, তাই অতিরিক্ত কোনো কনফিগারেশন প্রয়োজন হয় না।
public void ConfigureServices(IServiceCollection services)
{
services.AddRouting();
services.AddControllersWithViews();
}
Configure
মেথডে, আপনাকে MapControllerRoute এর মাধ্যমে রাউটিং কনফিগারেশন করতে হবে।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
// Default route configuration
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
MapControllerRoute এর মাধ্যমে রাউটিং কনফিগার করা হয়, যেখানে:
{controller=Home}
: এটি HomeController কে ডিফল্ট কন্ট্রোলার হিসেবে সিলেক্ট করে।{action=Index}
: এটি Index অ্যাকশনকে ডিফল্ট অ্যাকশন হিসেবে সিলেক্ট করে।{id?}
: এটি ঐচ্ছিক প্যারামিটার।ASP.Net Framework এ Routing কনফিগারেশন Global.asax ফাইলে করা হয়।
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// Enable routing
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
RouteConfig.cs ফাইলে সমস্ত রাউট কনফিগারেশন থাকে।
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route
routes.MapRoute(
name: "default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
এখানে:
ASP.Net এ কাস্টম URL প্যাটার্ন ব্যবহার করে আপনিও রাউট কনফিগার করতে পারেন।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
// Custom route pattern
endpoints.MapControllerRoute(
name: "product",
pattern: "product/{category}/{id?}",
defaults: new { controller = "Product", action = "Details" });
});
}
এখানে, আপনি product/{category}/{id?} URL প্যাটার্নটি কনফিগার করেছেন, যা ProductController এর Details অ্যাকশনে পাঠানো হবে। এখানে category
প্যারামিটারটি বাধ্যতামূলক, তবে id
ঐচ্ছিক।
Attribute Routing: ASP.Net Core তে, আপনি কন্ট্রোলার বা অ্যাকশনে [Route] অ্যাট্রিবিউট ব্যবহার করতে পারেন। উদাহরণ:
[Route("product/{id}")]
public IActionResult Details(int id)
{
// Your code to fetch product details
}
Multiple Routes: আপনি একাধিক রাউট কনফিগারেশন ব্যবহার করতে পারেন একই অ্যাকশনের জন্য।
[Route("product/{id}")]
[Route("item/{id}")]
public IActionResult Details(int id)
{
// Your code to fetch product details
}
Constraints: রাউটিং প্যাটার্নে কন্ডিশন বা কনস্ট্রেইন্ট ব্যবহার করতে পারেন। যেমন:
routes.MapRoute(
name: "productDetails",
url: "product/{id:int}",
defaults: new { controller = "Product", action = "Details" }
);
এখানে {id:int}
রাউট কনস্ট্রেইন্ট দ্বারা নিশ্চিত করে যে id
শুধুমাত্র একটি পূর্ণসংখ্যা হবে।
Routing ASP.Net অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ যা URL এবং কোডের মধ্যে একটি সম্পর্ক তৈরি করে। ASP.Net Core এবং ASP.Net Framework উভয়েই Routing কনফিগারেশনের জন্য ভিন্ন পদ্ধতি ব্যবহার করে। ASP.Net Core এ Startup.cs ফাইলে এবং ASP.Net Framework এ Global.asax ফাইলে Routing কনফিগার করা হয়। আপনি কাস্টম URL প্যাটার্ন, Attribute Routing, এবং Constraints ব্যবহার করে আরও বেশি নমনীয় রাউটিং তৈরি করতে পারেন।
Read more